package com.tengju.user.domain.model.chief;

import com.tengju.user.domain.model.department.DepartmentId;
import com.tengju.user.domain.model.user.UserIdCode;

import java.util.List;

public interface ChiefGenSecRelationRepository {

    List<ChiefGenSecRelation> getChiefGenSecRelation(ChiefId chiefId);

    void batchInsert(List<ChiefGenSecRelation> list);

    int batchRemove(ChiefId chiefId);

    List<ChiefSecCount> queryByChiefIdAndSecIdPage(ChiefId chiefId, UserIdCode genSecId, Integer offset, Integer pageSize);

    int count(ChiefId chiefId, UserIdCode genSecId);

    List<UserIdCode> queryGenSecIdCodeList(ChiefId chiefId);

    List<ChiefId> chiefIdList();


    /**
     * 更新总监部门关系
     *
     * @param chiefSecRelation 总监sec关系DTO
     */
    void updateChiefDepartmentRelation(ChiefGenSecRelation chiefSecRelation);

    /**
     * 得到总监sec关系 通过sec列表与指定的总监部门
     *
     * @param userIdCodeList 用户id代码列表
     * @return {@link List}<{@link ChiefGenSecRelation}>
     */
    List<ChiefGenSecRelation> getChiefGenSecRelationBySecsDepartments(List<UserIdCode> userIdCodeList, List<DepartmentId> departmentIdList);


}
